home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / cliper.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  4.7 KB  |  137 lines

  1. //Language: Clipper
  2. //Copyright (c) 1992-2002 Altium Limited             
  3. //All rights reserved.                               
  4. //http://www.dream-com.com                           
  5. //contact@dream-com.com                              
  6.  
  7. // states
  8. State=snormal
  9. State=sstring1
  10. State=sstring2
  11. State=scomment1
  12. State=scomment2
  13. State=scomment3
  14. State=scomment4
  15. State=scomment5
  16. State=sdirective
  17. // tokens
  18. Token=tnone
  19. Token=tstring
  20. Token=tcomment
  21. Token=tident
  22. Token=tinteger
  23. Token=tfloat
  24. Token=tresword
  25. Token=tassembler
  26. Token=turl
  27. Token=twhitespace
  28. Token=tdirective
  29. //delims
  30. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  31.  
  32. // reswords
  33.  
  34. snormal '.and.'       snormal tresword
  35. snormal '.f.'         snormal tresword
  36. snormal '.not.'       snormal tresword
  37. snormal '.or.'        snormal tresword
  38. snormal '.t.'         snormal tresword
  39. snormal 'announce'    snormal tresword
  40. snormal 'begin'       snormal tresword
  41. snormal 'break'       snormal tresword
  42. snormal 'case'        snormal tresword
  43. snormal 'class'       snormal tresword
  44. snormal 'continue'    snormal tresword
  45. snormal 'declare'     snormal tresword
  46. snormal 'do'          snormal tresword
  47. snormal 'else'        snormal tresword
  48. snormal 'elseif'      snormal tresword
  49. snormal 'end'         snormal tresword
  50. snormal 'endcase'     snormal tresword
  51. snormal 'endclass'    snormal tresword
  52. snormal 'enddo'       snormal tresword
  53. snormal 'endif'       snormal tresword
  54. snormal 'endsequence' snormal tresword
  55. snormal 'exit'        snormal tresword
  56. snormal 'exported'    snormal tresword
  57. snormal 'field'       snormal tresword
  58. snormal 'for'         snormal tresword
  59. snormal 'function'    snormal tresword
  60. snormal 'hidden'      snormal tresword
  61. snormal 'if'          snormal tresword
  62. snormal 'in'          snormal tresword
  63. snormal 'init'        snormal tresword
  64. snormal 'local'       snormal tresword
  65. snormal 'memvar'      snormal tresword
  66. snormal 'method'      snormal tresword
  67. snormal 'next'        snormal tresword
  68. snormal 'nil'         snormal tresword
  69. snormal 'note'        snormal tresword
  70. snormal 'otherwise'   snormal tresword
  71. snormal 'parameters'  snormal tresword
  72. snormal 'private'     snormal tresword
  73. snormal 'procedure'   snormal tresword
  74. snormal 'protected'   snormal tresword
  75. snormal 'public'      snormal tresword
  76. snormal 'recover'     snormal tresword
  77. snormal 'request'     snormal tresword
  78. snormal 'return'      snormal tresword
  79. snormal 'self'        snormal tresword
  80. snormal 'sequence'    snormal tresword
  81. snormal 'static'      snormal tresword
  82. snormal 'step'        snormal tresword
  83. snormal 'then'        snormal tresword
  84. snormal 'to'          snormal tresword
  85. snormal 'using'       snormal tresword
  86. snormal 'var'         snormal tresword
  87. snormal 'while'       snormal tresword
  88.  
  89. // numbers
  90. snormal [0-9][0-9]*                            snormal  tinteger
  91. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  92. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  93.  
  94. //idents
  95. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  96.  
  97. //white space
  98. //snormal #32*                      snormal   twhitespace
  99.  
  100. //strings
  101. snormal    \"                     sstring1   tstring
  102. sstring1   [^\"]*                 sstring1   tstring
  103. sstring1   \"                     snormal    tstring
  104. sstring1   \"\"                   sstring1   tstring
  105. sstring1   $                      snormal    tstring
  106. //
  107. snormal    \'                     sstring2   tstring
  108. sstring2   [^\']*                 sstring2   tstring
  109. sstring2   \'                     snormal    tstring
  110. sstring2   \'\'                   sstring2   tstring
  111. sstring2   $                      snormal    tstring
  112.  
  113. //comments
  114. snormal    //                       scomment1 tcomment
  115. scomment1  [#1-#255]*               snormal   tcomment
  116. snormal    &&                       scomment2 tcomment
  117. scomment2  [#1-#255]*               snormal   tcomment
  118. snormal   /\*                       scomment3 tcomment
  119. scomment3 [^\*]*                    scomment3 tcomment
  120. scomment3 \*[^/]                    scomment3 tcomment
  121. scomment3 [\*]*/                    snormal   tcomment
  122.  
  123. snormal    \*                       scomment4 tcomment
  124. scomment4  [#1-#255]*               snormal   tcomment
  125. snormal    note                     scomment5 tcomment
  126. scomment5  [#1-#255]*               snormal   tcomment
  127. scomment1  $                        snormal   tcomment
  128. scomment2  $                        snormal   tcomment
  129. scomment4  $                        snormal   tcomment
  130. scomment5  $                        snormal   tcomment
  131.  
  132. //directives
  133.  
  134. snormal  \#                       sdirective tdirective
  135. sdirective [#1-#255]*             snormal    tdirective
  136. sdirective $                      snormal    tdirective
  137.